//导入 express
const express = require('express');
const bodyParser = require('body-parser');
const cookieParser = require('cookie-parser');
//创建对象
const app = express();
//设置请求体处理的中间件
app.use(bodyParser.json()) // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })) // for parsing application/x-www-form-urlencoded
//设置请求头 cookie 处理的中间件
app.use(cookieParser())

//路由规则  登录页面
app.get('/login', (req, res) => {
  //响应某一个文件的内容给浏览器
  res.sendFile(__dirname + '/html/login.html');
});

// 当前唯一用户  admin  admin
app.post('/login', (req, res) => {
  //获取请求体数据
  if(req.body.username==='admin' && req.body.password==='admin'){
    //设置 cookie
    res.cookie('username', 'admin');// 专门设置 cookie
    res.send('登录成功');
  }else{
    res.send('账号或密码错误');
  }
});

//购物车
app.get('/cart', (req, res) => {
  //获取用户的 cookie 值
  if(!req.cookies.username){
    return res.redirect('/login');
  }
  res.send('购物车页面 <a href="/logout">退出</a>');
});

//退出登录
app.get('/logout', (req, res) => {
  //清除 cookie
  res.clearCookie('username');
  //提醒
  res.send('退出成功');
});

//cookie 设置的补充
app.get('/cookie', (req, res) => {
  //设置的cookie, 将会在浏览器关闭的时候, 自动销毁
  // res.cookie('a', 100);
  //设置的cookie 指定它的有效时间
  // res.cookie('b', 200, {maxAge:30 * 1000}); // max 最大  age 年龄   单位毫秒
  // httpOnly 属性   限制该 cookie 只能在请求中使用, 
  // res.cookie('c', 300);
  res.cookie('c', 300, {httpOnly: true});
  res.send('cookie的设置')
});

//监听端口 启动服务
app.listen(80, () => {
  console.log('服务已经启动....');
})

